LtU Forum, Site Discussion

Keywords per post?

Readers of LtU sometimes want to read posts on one (specific or vague) topic. Editors can post to departments, others post to uncategorized forum. In the course of discussion, the topic can change drastically. Discussions are often inter-topical.

Therefore, wouldn't it be beneficial for readers that any posting person can assign a keyword for the post from the list of available? In this way each thread will acquire a polynomial key that can be matched with reader's criteria...

Is it technically hard to implement, or does it look like another crazy idea of me?

Mila

Mila takes a minimalistic approach to language design: As much as possible is delegated to libraries, the rest is a small set of language constructs. Hashtables, lists, objects and namespaces are all the same thing, for example. Other features: All parameters are named and have default values, variables are strongly typed, and there's a nice syntax to write objects with indentation.

I am the author of the language and all feedback is very welcome.

Introducing o:XML

What is o:XML?

It's a dynamically typed, general-purpose object-oriented programming language. It's got threads, exception handling, regular expressions, namespaces, and all the other things you would expect from a modern language. And it's expressed entirely in XML.

Why?

And so we return to the question: Why o:XML? My preferred answer would be: Using the same format for code as we use for data allows us to think slightly differently about the code. The application is not only a runtime executable, magically incantated by the source code -- it is structured data, information, a document!

Astonishing!

Database Theory and Type systems/Programming Languages.

So, just recently I read The Third Manifesto, and since I'm interested in programming languages, dissatisfied with SQL, and thinking about databases I figured I would post some of my questions here.

I don't know that much about modern type systems, but in the book, their discussion of type systems seems a little archaic compared to the sorts of things people bring up here. If there is anyone more knowledgable than I, I would appreciate some insight into how their stuff fits in the grand scheme of things.

Also, I recall in Concepts, Techniques, and Models of Computer Programming they discuss transactions and constraint based programming and do some connections with databases, but it mostly just left me wanting more. Has anyone successfully added the "Relational Model" to a programming language and integrated into the type system in a nice, and theoretically justified way?

I'm sorry if my questions aren't quite coherent. I don't know enough to ask it, but it seems like there are strong connections to their work with other areas of programming language research, but that perhaps the two camps have not gotten together and seen to integrate the two areas.

Oh yeah, I've read enough of DB Debunkings to realize that C.J. Date and company can be a bit ornery, but I just want to see how these two things intersect. I'm definitely not part of the camp trying to clamour for "Object Oriented/Relational/whatever" database, just someone trying to understand the theoretical aspects of databases in the context of programming languages.

PyCLIPS - expert systems shell in Python

PyCLIPS embeds the CLIPS "expert systems shell" in Python.

It appears to be a set of Python wrappers for the CLIPS C modules themselves, rather than a complete reimplementation in Python. In fact, the CLIPS engine runs in its own memory space and allocates its own objects. However, the integration with the engine is extensive enough to be of interest here, because some of the challenges it poses are similar to those involved in embedding one language in another (e.g. finding a good fit between Python syntax and the protocol used to communicate with the engine).

More details can be found in the manual, downloadable from the project's sourceforge site.

Info needed

I need references discussing the place of pl education in the CS curriculum.

Also: Which top universities (e.g., MIT, Yale, Stanford, Harvard, etc.) require (or don't) a PL course in their undergrad curriculum?

Thanks!

Epigram - incremental interactive typechecking

You can download Epigram itself and follow the tutorial. It's worth trying.

The part that most impressed me is the interactivity. I really like this halfway point between a structure editor and a free text editor.

I think this approach would be great for designing parsers as well, where you have the content to be parsed in a separate buffer, and you interactively build the parser and see which bits gets parsed.

Also, dependently typed languages are very nifty.

Papers' repositories

Was not able to find a section that would mention arXiv, CiteSeer and other repositories. Wouldn't it be nice to have one besides Research Papers, which is great, but covers specific papers and not "libraries".
The reason for using searches in the specific repository instead of Google is that some queries like "path tree graph free generated category product" result in much more enterprise related topics than category related when run under generic searcher (Google).

Embedding Prolog in Haskell

Luke once pointed to Peter Norvig's embedding of Prolog in Lisp as an example of the power of the language, and asked whether (or if) it could be done in Haskell. I said I would think about it, but never got around to working out the details.

Well, it turns out it's been done, and the essential bits are quite simple and intuitive, though macros would help to hide some of the abstract syntax-looking stuff (not apparent from the paper's append example).

J. M. Spivey and S. Seres. Embedding Prolog in Haskell. In Proceedings of Haskell '99 (E. Meijer, ed.), Technical Report UU-CS-1999-28, Department of Computer Science, University of Utrecht.

Formatting hints from Mark

Frank asked me about pretty formatting. Well, I can describe how I work and my opinions. Your mileage may vary. I do markup by hand, copy/paste style, in an editor with N clipboards to keep the variations handy. You only need to know 3 things about markup. Forget CSS files, classes, and other fanciness. That's overkill for LtU. The things to know are that:

  • The style attribute does everything.
  • The value of the style attribute is a single string encoding all parameters. Include or omit as many as you like.
  • The style attribute qualifies both paragraph tags and span tags (for inline markup).
That's it. Keep a kitchen-sink style attribute on some clipboard with default values. Paste it as needed, then overtype or delete specific values in context. If you have more clipboards, some can hold preset markup. Here's a kitchen sink, which you may copy with your mouse and customize to your liking:
style="color: black; background-color: white; font-style: normal; font-weight: normal; font-size: normal; font-variant: normal; text-decoration: none; text-indent: 0%; padding-left: 0%"
DeepX offers a handy cheat sheet (PDF) for these parameters. Note my deliberate omission of font-family.

This paragraph uses the kitchen-sink style. It should look the same as any unadorned paragraph.

For interest's sake we can demonstrate options. The desperately curious may use their browser's "view markup source" function.

A warning paragraph in large-strong-red text with 3% indent and 5% left padding: The old font tag is deprecated, don't use it any more.

Font-size permits many types of settings, but don't use absolute metrics (points, ems, cm, whatever). Use something like xx-small, x-small, small, medium, large, x-large, xx-large, smaller, normal, larger, or a percentage like 65% or 132%.

The only place where you might use absolute metrics is in the border of a highlighted section, if you want a border at all. Note how span tags can nest. Small caps are possible too. There is also something called text-transform for capitalization.

Simple inline markup remains simple. Forget style. First we have the famous "code" tag. You can use font-family: monospace to similar effect. Use the "em" tag for emphasis, the "strong" tag for strength. Don't use older "i" or "b" tags. The style attribute defines italics as font-style: normal, font-style: italic, and font-style: oblique. It defines boldface as font-weight: normal, font-weight: bold, and font-weight: bolder. We also have text-decoration: none, text-decoration: underline, text-decoration: overline, text-decoration: line-through, text-decoration: blink.

Simple "yellow" background color performs inline highlighting. You can also play with hex color codes, but simple color names work, e.g., font-weight: bold; color: yellow; background-color: purple.

This stuff can be overdone. I just wanted to showcase possibilities, since someone (important like Frank) asked me. Use good taste. Colors help a great deal. LtU likes blue, or blue italics, for excerpts, and italics for quoting others from LtU. I would recommend a distinct color as well, more than one if quoting more than one person to compare statements.

XML feed